The present invention relates to speech encoding and decoding in communications systems and in particular to speech encoding and decoding in the TETRA (TErrestrial Trunked RAdio) mobile communications system.
The TETRA speech CODEC compresses input speech into a plurality of separate speech “frames”. Each speech frame represents 30 ms of sampled speech and contains 137 bits of information.
The TETRA speech CODEC is described in detail in ETSI EN 300 395-2 V1.3.1 (2005-01): Terrestrial Trunked Radio (TETRA); Speech codec for full-rate traffic channel; Part 2: TETRA Codec.
In a TETRA system, when the encoded speech is to be transmitted, the channel coding on the TETRA traffic channel (TCH/S) breaks, on a frame-by-frame basis, the 137 bits of each speech frame into 3 groups and sets one of the bit groups as a “high” error protection bit group, one bit group as a “medium” error protection bit group, and the other bit group as a “no” (“none”) error protection bit group.
The effect of this, inter alia, is that no error detection or correction is possible for the “no” (“none”) error protection bit group of an encoded speech frame, but a certain level of bit errors are correctable (but not detectable) for the medium protection bit group. Bit errors introduced between the transmitter and receiver can only be detected for the high protection bit group.
While the TETRA speech coding arrangement generally works well in practice, the Applicants have found that the TETRA CODEC contains a design weakness that can be exposed in a real-world radio (RF) environment.
In particular, in the TETRA speech coding arrangements, a number of the bits in a speech frame represent three index values which are each used to index a codebook.
The output from this index lookup is 10 roots of a polynomial representing the nearest encoding for the 30 ms of speech that the speech frame in question represents (encodes). This polynomial, as is known in the art, in effect creates a model of the vocal tract that changes with every speech frame in order to model the changing voice (speech).
The Applicants have found that bit errors in a received speech frame can cause the derived codebook index values to extract an inconsistent set of values (polynomial roots) from the codebook tables. Moreover, if these bit errors are introduced in the traffic channel, they will not be detected save for possibly in the high error protection bit group of the speech frame. Furthermore, the stability checks currently provided in TETRA speech decoders are unable to identify such errors, if they arise, at the decoding side of the process.
The Applicants have further found that the effect of such an error arising in the codebook index values and extraction can be to cause the impulse response of the TETRA decoder filter to go unstable. This can cause the TETRA decoder effectively to resonate around certain frequencies and lead to a full-scale output high-pitched squeal that can potentially persist for many seconds. This is undesirable and can cause discomfort to the radio user.
There is therefore an error situation in TETRA speech decoding that is not currently detected or avoided with existing TETRA equipment, and that can cause undesirable discomfort to TETRA radio users.